package com.org.cloud.lg;

import org.dozer.Mapper;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class IServiceImpl implements IService<Student> {

    @Autowired
	Mapper mapper;


    @Test
    public void t(){
		IServiceImpl iService=new IServiceImpl();

		Class clazz=getClass();
	//getSuperclass()获得该类的父类
		Type[] inf=clazz.getGenericInterfaces();
			System.out.println(inf[0]);
		ParameterizedType p1=(ParameterizedType)inf[0];
		System.out.println(p1);
		Class c1=(Class) p1.getActualTypeArguments()[0];
		System.out.println(c1);
		//getGenericSuperclass()获得带有泛型的父类
	//Type是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
			Type type=clazz.getGenericSuperclass();
			System.out.println(type);
	//ParameterizedType参数化类型，即泛型
			ParameterizedType p=(ParameterizedType)type;
	//getActualTypeArguments获取参数化类型的数组，泛型可能有多个
			Class c=(Class) p.getActualTypeArguments()[0];
			System.out.println(c);
		}


}



